The present invention relates generally to computerized relational database systems and methods, and more particularly, to a method of evaluating relational database qualifications.
A relational database allows a user to modify and access a database by specifying the relationship of two or more relations (analogous to files) by writing an expression (also called a "qualification"). The flexibility of a relational database is what gives it its great user appeal. However there is a serious drawback to the flexibility of a relational database: processing the qualification is relatively slow, compared to conventional hierarchical databases.
Prior approaches to the processing of relational database qualifications used a combination of index and subsequent expression processing to complete the processing. Specifically the portion of the qualification that is not processed in the index is evaluated in the subsequent expression processing step. Since the expression processing step is many orders of magnitude slower than the index processing step, the choice of which portions of the qualification to treat as an index and which portions of the qualification to evaluate as expressions is critical to the product's processing speed.
Prior approaches protect themselves from this thorny problem by employing two tactics. First, the burden of specifying which index to create is shifted to the relational database user, and second, the user can specify which index to use manually. Hence the final responsibility for processing efficiency is placed upon the user. From the user standpoint this often makes achieving and maintaining good performance either costly or impossible. As a consequence the potential market advantage derived from a good database, or database based process, is lost.
Accordingly, it is an objective of the present invention to provide a method of speeding up relational database qualification processing. It is also an objective of the present invention to provide a method of speeding up relational database qualification processing that eliminates the need for a user defined index.